查看原文
其他

在单个 RedHat 虚机中安装 Db2 开发版中的 HADR 功能 | 进阶技巧

陆川 twt企业IT社区 2024-02-18

【作者】陆川,从事IT行业20多年,精通Db2和Informix数据库,擅长运维和高可用架构设计和实施;熟悉Sybase数据库;目前从事Db2的推广和Informix的升级和维护等工作。


一、前言

本文描述了如何在单个REDHAT中,在Db2 11.1开发版中搭建HADR,方便用户快速的掌握Db2的HADR技术。

如果用两个虚机来做,虽然更接近实际的生产环境,但单个笔记本上很可能没有足够的内存来运行两个虚机;但计算机技术发展很快,很可能过几年之后这也不成为问题。


二、安装前置条件检查

运行安装包中的db2prereqcheck程序,确认所有的安装条件都已经满足,才可以保证数据库实例创建成功。


三、创建实例所需要的用户和组

groupadd db2iadm1
groupadd db2iadm2
groupadd db2fadm1
groupadd db2fadm2
useradd -g db2iadm1 -d /home/db2inst1 -m db2inst1
useradd -g db2iadm2 -d /home/db2inst2 -m db2inst2
useradd -g db2fadm1 -d /home/db2fenc1 -m db2fenc1
useradd -g db2fadm2 -d /home/db2fenc2 -m db2fenc2
passwd db2inst1
passwd db2fenc1
passwd db2inst2
passwd db2fenc2


四、创建实例

使用root用户
cd /opt/ibm/db2/V11.1/instance
./db2icrt -s ese -u db2fenc1 db2inst1
./db2icrt -s ese -u db2fenc2 db2inst2


五、增加HADR服务所使用的端口号

修改 /etc/services,增加两行

hadr_inst1 70001/tcp
hadr_inst2 70002/tcp


六、准备数据库的表空间目录

mkdir /db2data1
mkdir /db2data2
chown db2inst1:db2iadm1 db2data1
chown db2inst1:db2iadm1 db2data2
mkdir /db2inst2
chown db2inst2:db2iadm2 /db2inst2


七、在db2inst1实例中创建数据库

db2 "create db nbdb on /db2data1,/db2data2"


八、修改HADR需要的参数

mkdir -p /db2data1/db2arch
db2 connect to nbdb
db2 update db cfg using logindexbuild on
db2 update db cfg using indexrec restart
db2 update db cfg using logarchmeth1 disk:/db2data1/db2inst1

不允许不记日志的操作:

db2 update db cfg using BLOCKNONLOGGED YES

db2 terminate
db2 deactivate db nddb

对数据库做假备份

db2 backup db nbdb to /dev/null


九、创建联机备份,后面会在db2inst2上进行恢复

mkdir -p /tmp/db2backup
cd /tmp/db2backup
db2 backup db nbdb online


十、修改primary实例的HADR相关参数

db2 connect to nbdb
db2 get db cfg | grep -i hadr
db2 update db cfg using HADR_LOCAL_HOST 192.168.1.6
db2 update db cfg using HADR_remote_HOST 192.168.1.6
db2 update db cfg using HADR_remote_svc hadr_inst2
db2 update db cfg using HADR_local_svc hadr_inst1
db2 update db cfg using HADR_remote_inst db2inst2


十一、使HADR参数生效

db2 deactivate db nbdb
db2 activate db nbdb


十二、设置HADR相关的注册变量

db2set DB2_HADR_SOSNDBUF=1024000
db2set DB2_HADR_SORCVBUF=1024000
db2set DB2_HADR_ROS=on
db2set DB2_HADR_ROS_AVOID_REPLAY_ONLY_WINDOW=on
db2set DB2_STANDBY_ISO=UR
db2 terminate


十三、重启db2inst1实例

db2stop force
db2start


十四、在db2inst2实例中恢复数据库

由于是在同一台机器上,所以需要使用重定向恢复

cd /tmp/backup
db2 restore db nbdb redirect generate script restore.sql

修改restore.sql中的恢复路径信息

主要修改的地方如下:

ON '/db2inst2'
-- , '/db2data2'

DBPATH ON '/home/db2inst2'
INTO NBDB

SET STOGROUP PATHS FOR IBMSTOGROUP
ON '/db2inst2'
-- , '/db2data2'

然后执行下面的命令进行恢复

db2 -tvf restore_new.sql

注意不需要执行前滚操作,HADR在启动之后会自动从primary追日志。


十五、修改db2inst2上HADR相关参数

db2 update db cfg for nbdb using hadr_local_host 192.168.1.6
db2 update db cfg for nbdb using hadr_remote_host 192.168.1.6
db2 update db cfg for nbdb using hadr_remote_svc hadr_inst1
db2 update db cfg for nbdb using hadr_local_svc hadr_inst2
db2 update db cfg for nbdb using hadr_remote_inst db2inst1
db2 update db cfg for nbdb using BLOCKNONLOGGED YES


十六、修改db2inst2上的注册变量

db2set -lr | grep HADR
db2set DB2_HADR_SOSNDBUF=1024000
db2set DB2_HADR_SORCVBUF=1024000
db2set DB2_HADR_ROS=on
db2set DB2_HADR_ROS_AVOID_REPLAY_ONLY_WINDOW=on
db2set -lr | grep STAND
db2set DB2_STANDBY_ISO=UR
db2 terminate


十七、启动db2inst2,作为standby实例

db2stop force
db2start
db2 start hadr on db nbdb as standby


十八、启动db2inst1作为 primary实例

db2 start hadr on db nbdb as primary
db2 activate db nbdb

确认HADR的状态:

db2pd -db nbdb -hadr


十九、验证HADR能够正常工作

db2 connect to nbdb
db2pd -db nbdb -tab
db2 "create table t2 (c1 int)"


二十、给角色授权

由于是两个不同的用户,因此需要将t1上的权限授权给db2inst2用户;

可能需要授权的用户很多,因此这里采用角色授权;

$ db2 create role myrole
$ db2 grant all on t2 to role myrole
$db2 grant role myrole to user db2inst2

在db2inst2上连接数据库,你将看到t2表的数据被复制了过来:

[db2inst2@node01 ~]$ db2 connect to nbdb

Database Connection Information

Database server = DB2/LINUXX8664 11.1.4.4
SQL authorization ID = DB2INST2
Local database alias = NBDB

[db2inst2@node01 ~]$ db2 "select * from db2inst1.t2"

C1

1

1 record(s) selected.

如有任何问题,可点击文末阅读原文到社区原文下评论交流


 资料/文章推荐:

  • DB2数据库HADR部署三个难点问题

    http://www.talkwithtrend.com/Article/244027

  • DB2数据库HADR部署实施研讨总结

    http://www.talkwithtrend.com/Article/244025

  • 实战DB2 purescale集群HADR环境联机升级修订包(上)

    http://www.talkwithtrend.com/Article/241445

  • 实战DB2 purescale集群HADR环境联机升级修订包(下)

    http://www.talkwithtrend.com/Article/241447


欢迎关注社区 “数据库容灾”技术主题,将会不断更新优质资料、文章。地址:

http://www.talkwithtrend.com/Topic/4619


下载 twt 社区客户端 APP

与更多同行在一起

高手随时解答你的疑难问题

轻松订阅各领域技术主题

浏览下载最新文章资料


长按识别二维码即可下载

或到应用商店搜索“twt”


长按二维码关注公众号

*本公众号所发布内容仅代表作者观点,不代表社区立场

继续滑动看下一个

在单个 RedHat 虚机中安装 Db2 开发版中的 HADR 功能 | 进阶技巧

陆川 twt企业IT社区
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存